package com.cskaoyan.javase.basic._6block;

/**
 * 在深入学习选择结构和循环结构前，我们还需要了解块（block）的概念。
 * 什么是代码块？代码块的定义是：
 * 由若干条Java语句组成，并且用一对大括号括起来的结构，叫做代码块。
 * 很显然，我们写的main方法,它的方法体就是一个代码块。
 * 特别注意: 类名后面跟的大括号是类体,它不属于代码块!!
 *
 * 那么代码块有什么用处呢？主要是：
 * 代码块决定了块中的变量的作用域，也就是块中的变量只在当前块中生效。
 * 这意味着同一个代码块中，不可能有同名的变量。
 * 定义在块中的变量，被块限制了作用域，称之为局部变量。这是一个非常重要的概念~
 *
 * 最后谈两点注意事项：
 *      1.代码块是可以嵌套定义的。
 *      2.关于代码块，我们后面会专门讲解，这里先暂且不谈。
 *
 * @since 11:05
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {

        // 代码块是可以嵌套定义的。
        {
            int a = 10;
            {
                // int a = 20;
                {

                }
            }
        }
        int a = 10;
        {
        }
        /*
            在代码块中定义的变量,就不能在代码块外部使用
            对于if和循环来说,如果需要一个变量能够在循环内和循环外部使用
            那么这个变量应该定义在if和循环外部的上面.
          */
        int num = 10;
        if (true) {
            num = 20;
        }
        System.out.println(num);
        // System.out.println(num);
        for (int i = 0; i < 10; i++) {
            // int num = 10;
        }
        // System.out.println(num);
    }
}
